package linearlist;

import org.junit.Test;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

/**
 * @author zhm
 * @date 2020/9/21
 */
public class ListNodeOperationTest {

    @Test
    public void testOddEvenList(){

        ListNodeOperation listNodeOperation = new ListNodeOperation();
        ListNode head = new ListNode(1);
        ListNode listNode5 = new ListNode(6);
        ListNode listNode4 = new ListNode(5);
        ListNode listNode3 = new ListNode(4,listNode4);
        ListNode listNode2 = new ListNode(3,listNode3);
        head.next = new ListNode(2,listNode2);
//        ListNode listNode = listNodeOperation.oddEvenList(head);
        ListNode listNode = listNodeOperation.findMedianListNode(head);

        System.out.println(listNode);

    }

    @Test
    public void testRemoverNthNode(){
        ListNodeOperation listNodeOperation = new ListNodeOperation();
        ListNode listNode2 = new ListNode(2);
        ListNode head = new ListNode(1,listNode2);

        ListNode listNode = listNodeOperation.removeNthFromEnd2(head, 1);
        System.out.println(listNode);

    }

    @Test
    public void testMergeTwoLists(){
        ListNode l1 = new ListNode(1);
        ListNode l2 = new ListNode(3);
        ListNode l3 = new ListNode(5);

        l1.next = l2;
        l2.next = l3;

        ListNode l4 = new ListNode(2);
        ListNode l5 = new ListNode(4);
        ListNode l6 = new ListNode(6);

        l4.next = l5;
        l5.next = l6;

        ListNodeOperation listNodeOperation = new ListNodeOperation();
        ListNode listNode = listNodeOperation.mergeTwoLists(l1, l4);
        System.out.println(listNode);

    }

    @Test
    public void testSortList(){
        ListNode l1 = new ListNode(4);
        ListNode l2 = new ListNode(2);
        l1.next = l2;

        ListNodeOperation listNodeOperation = new ListNodeOperation();
        ListNode listNode = listNodeOperation.sortList(l1);
        System.out.println(listNode);
    }


    @Test
    public void  testAddTwoNumber(){
        ListNodeOperation listNodeOperation = new ListNodeOperation();
        ListNode l1 = new ListNode(3);
        ListNode l2 = new ListNode(9);
        ListNode l3 = new ListNode(9);
        ListNode l4 = new ListNode(9);
        ListNode l10 = new ListNode(9);

        ListNode l11 = new ListNode(9);
        ListNode l12 = new ListNode(9);
        ListNode l13 = new ListNode(9);
        ListNode l14 = new ListNode(9);
        ListNode l15 = new ListNode(9);


        l1.next = l2;
        l2.next = l3;
        l3.next = l4;
        l4.next = l10;
        l10.next = l11;
        l11.next = l12;
        l12.next = l13;
        l13.next = l14;
        l14.next = l15;


//        ListNode l5 = new ListNode(5);
//        ListNode l6 = new ListNode(6);
//        ListNode l7 = new ListNode(4);
//        l5.next = l6;
//        l6.next = l7;

                ListNode l5 = new ListNode(7);


        ListNode listNode = listNodeOperation.addTwoNumbers(l1, l5);
        System.out.println(listNode);
    }

    @Test
    public void testDate(){
        LocalDate localDate = LocalDate.parse("2020-10-12", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        System.out.println(LocalDate.now().compareTo(localDate));
    }
}
